﻿using System;
using System.Windows.Forms;
using System.Linq;
using StableDiffusionTools.Enums;

namespace StableDiffusionTools.Controls
{
    public class EnumComboBox : ComboBox
    {
        private Type enumType;
        public void PopulateFromEnum<TEnum>(TEnum selectedEnum = default(TEnum), params TEnum[] excludedEnums)
        {
            enumType = typeof(TEnum);
            TEnum[] Enums = EnumUtil.GetValues<TEnum>();
            foreach (TEnum item in Enums)
                if(!excludedEnums.Contains(item))
                    Items.Add(item);

            SelectedItem = selectedEnum;
        }

        public TEnum GetSelectedItem<TEnum>()
        {
            return (TEnum)SelectedItem;
        }
    }
}
